home *** CD-ROM | disk | FTP | other *** search
- Wordsearch Generator
-
- This is an automated wordsearch generator which supports puzzle sizes
- limitted (by defines) to 1000X1000 and up to 50 words.
- Words orientations can be limitted to any subset of the eight primary
- directions and the puzzle can be rotated or flipped.
- It has a spartan but functional user interface highlighted by the
- req.library and can output the word list, key and puzzle to file or prt:.
- The system default font under WB 2.0 is supported for the puzzle window.
-
-
- If you've ever tried to create a simple wordsearch you know the hardest
- part is getting past staring at a blank page. So I wrote this program
- to randomly place words within a puzzle.
- It works by generating a first placement and then sequentially moving
- through the puzzle until the word fits. Once a fit is found it goes
- to the next word. If a fit cannot be made the previous word is attempted
- to be refitted and if it cannot then it steps back to the word before it.
- Therefore a complex puzzles may seem to take forever but given
- enough time it will always determine if the words can be fit.
- Because forever is a long time I've added a requestor to abort the algorithm.
-
-
- Things to consider when running the program:
-
- -Boost the stack: 4000 won't cut it for even very simple puzzles.
- If the stack isn't large enough the program shouldn't crash but
- it will shut down leaving the windows to clutter your workbench.
- ei Stack 20000
-
- -Use FastFonts (FF on Wb1.3) or the text scrolling will be abominal.
-
- -If you have 2.0 try changing the system default text to something larger.
- This will effect the Puzzle display window so you can make the puzzle large
- enough to fill the WB screen and then use GraphicDump to print the puzzle.
- I prefer printing with a DTP but this is a good poor man's solution.
-
-
- Hopefully the product IS intuitive so I'll just explain the general
- operation and the menus. The speed of the interface also needs
- improvement but for now its useable.
-
- The Wordlist Window:
-
- Here you enter your words.
- Click in the window and you'll see a cursor appear so you can enter a
- word.
- Hitting return will push you down to the next line for entering another word.
- Note: this occurs even if the next word is below the bounds of the window
-
- The scroll bar at the side of the window lets you change the view of the
- word list.
-
- If you need to edit an entry just click where you want to change and use
- the delete or backspace or any of the special editing available with
- Intuition string gadgets.
- There is also a menu for some more sophisticated editing of the wordlist
- which will be discussed later.
-
-
- The Puzzle Window:
-
- Here the last generated key or puzzle is displayed.
- If the puzzle is larger than the window the scroll bars at the bottom and
- right side can be used to scroll about.
- What is displayed is controlled by a menu which will be discussed later.
-
-
- (Is it later already?)
- The Menus:
-
- Project - controls printing and saving/loading a puzzle and wordlist
-
- New - clear the wordlist
-
- Open - load a saved file
- will call up a file requestor
- Save - save under the current file name
- if a file name has not been set the requestor will come up
- Save As - bring up requestor to change save filename and save the file
-
- Print - text dump of the wordsearch
- Wordlist - prints the wordlist as it appears in wordlist window
- default output is to PRT: See Print Redirect
- Display - prints the display as it appears in the puzzle window
- default output is to PRT: See Print Redirect
- Print Redirect
- To File - if active, will bring up requestor for where
- to print the output when a print options is selected
- To Clipboard - not implemented (yet)
-
- Puzzle - controls generation of new puzzle information
- Dimensions - set the dimensions of the puzzle via requestors
- a new key and puzzle will be generated automatically
- Generate
- New Key - recreate the puzzle from the ground up
-
- New Puzzle - only replace the filler the goes around words
-
- Try to Overlap - if active New Key will try to position words
- so they are tightly overlapped
- Word Direction - How words can be positions in the puzzle
- Left - only left to right
- Left Down etc
- Down
- Right Down
- Right Up
- Up
- Left Up
-
- Display - controls how the puzzle is displayed
- Key - display the key, only the letters placed from the wordlist
- are displayed
- Puzzle - display the key plus filler to hide the words
- Direction - the puzzle/key can be fliped and rotated 90 degrees
- the signs indicate if the puzzle is flipped along that axis
- and the order indicates the horizontal and vertical axis of
- the display
- +X+Y - display as generated
- +X-Y
- -X+Y - reverse the direction of the x axis
- -X-Y
- +Y+X - width along the vertical and height along horizontal
- +Y-X
- -Y+X
- -Y-X
-
- Wordlist - some manipulation commands for the word list
- acts on the word active before selecting the menu
- To Buffer - copy the word to a temporary storage buffer
- there is only one word stored in the temporary storage
- From Buffer - copy to the word from the buffer to the active word
-
- Insert - make room for a word at the current location
-
- Delete - delete the current word moving all subsequent words up
-
- Clean Up - remove any blank words
-
- Uppercase All - convert all words to uppercase
- puzzle is not affected so use this before you New Key
- Sort - sort words alphabetically
-
-
- Well that's it accept for the generic disclaimer that I'm not responsible for
- anything which results from you running this program, good or bad.
-
- The program IS public domain since I feel it can be seriously improved
- speed wise and I probably will not get around to working on it for a while.
-
- As such I've included the source, in C.
- I've also included the source for reqglue.o from the ReqLib package which has
- one function added so the default font height and width can be be retrieved
- easily in a C program. To recompile you'll also need the programmer kit for
- the req.library available on fish.
- Compiled under Lattice 5.04.
-
-
- Thanks to Anders Bjerin for putting together the C Manual on Fish
- which gave me the courage to attempt the intuition interface, Colin Fox and
- Bruce Dawson for my favorite requestor library, and to any and all in the
- AMiga Users of Calgary who I've annoyed with programming questions
- particularly resident guru Stephen Vermeulen.
-
- Craig Lever
- RR #1,
- Airdrie, Alberta, CAN
- T4B 2A3
-
- Fidonet:
- Craig Lever @ 1:134/27, AMUC Express (Calgary Alta) (403) 282-5137
- 282-5171
- 282-5224
- 282-5238
- @ 1:134/13, The SuperBox BBS (Calgary Alta) (403) 288-0531
- 288-2396
-